package org.mobilesynergies.android.epic.service;

import org.mobilesynergies.android.epic.service.interfaces.IApplicationStatusChangeCallback;
import org.mobilesynergies.android.epic.service.interfaces.IIncomingMessageCallback;
import org.mobilesynergies.android.epic.service.interfaces.IServiceStatusChangeCallback;

import android.os.Bundle;

/**
 * @author Peter
 * 
 * Interface holding all service methods that are state dependent. Their implementation is deferred.  
 *
 */
public interface EpicServiceState {

	public void registerApplicationStatusChangeCallback(String sessionKey, IApplicationStatusChangeCallback callback);
	public void registerServiceStatusChangeCallback(String sessionKey, IServiceStatusChangeCallback callback);
	public void registerSubscriberCallback(String sessionToken, IIncomingMessageCallback messageCallback);
	public Bundle requestResponse(String sessionToken, Bundle object);
	public void sendMessage(String sessionToken, Bundle object);
	public void removeSubscriberCallback(String sessionToken);	
	public String getState();

}